﻿Imports CondorTravel.BC
Imports CondorTravel.BE

Public Class InformeCampo
    Inherits PaginaBase


    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Not Page.IsPostBack Then
            CargarEstados()
            CargarUsuarios()
            cboUsuarios.SelectedValue = CType(Session("usuario"), UsuariosBE).CodUsuario
            txtDesde.Attributes.Add("readonly", "readonly")
            txtHasta.Attributes.Add("readonly", "readonly")
            calendarDesde.EndDate = DateTime.Now
            calendarHasta.EndDate = DateTime.Now
            ListarInformes()
        End If
    End Sub

    Private Sub CargarUsuarios()
        Dim objUsuariosBC As New UsuarioBC
        cboUsuarios.DataSource = objUsuariosBC.ListarUsuarios()
        cboUsuarios.DataValueField = "CodUsuario"
        cboUsuarios.DataTextField = "NomUsuario"
        cboUsuarios.DataBind()
    End Sub

    Private Sub CargarEstados()
        Dim objEstadosBC As New EstadoDocBC
        Dim listEstadoBE As List(Of EstadoDocBE) = New List(Of EstadoDocBE)

        Dim objEstadoSeleccione As EstadoDocBE = New EstadoDocBE
        objEstadoSeleccione.Codigo = String.Empty
        objEstadoSeleccione.Descripcion = "[Seleccione]"
        listEstadoBE.Add(objEstadoSeleccione)

        Dim objEstadoBE As New EstadoDocBE
        objEstadoBE.Tipo = "I"

        listEstadoBE.AddRange(objEstadosBC.EstadoListar(objEstadoBE))

        cboEstado.DataSource = listEstadoBE
        cboEstado.DataValueField = "Codigo"
        cboEstado.DataTextField = "Descripcion"
        cboEstado.DataBind()
    End Sub

    Protected Sub btnNuevo_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnNuevo.Click
        Response.Redirect("RegistrarInforme.aspx", True)
    End Sub

    Protected Sub btnConsultar_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnConsultar.Click
        'Validamos que las fechas esten dentro de rango

        If txtDesde.Text.Length > 0 And txtHasta.Text.Length > 0 Then
            If CDate(txtHasta.Text) < CDate(txtDesde.Text) Then
                Alerta("La fecha final no puede ser menor que la inicial.", False, String.Empty)
                Exit Sub
            End If
        End If
        ListarInformes()
    End Sub

    Private Sub ListarInformes()
        Dim objInformeCampo As New InformeCampoBE

        If cboUsuarios.SelectedValue.Trim <> String.Empty Then
            objInformeCampo.Usuario = cboUsuarios.SelectedValue.Trim
        Else
            objInformeCampo.Usuario = ""
        End If

        If cboEstado.SelectedValue.Trim <> String.Empty Then
            objInformeCampo.Estado = cboEstado.SelectedValue.Trim
        Else
            objInformeCampo.Estado = ""
        End If

        If txtDesde.Text.Trim <> "" Then
            objInformeCampo.FechaInicio = txtDesde.Text.Trim
        Else
            objInformeCampo.FechaInicio = ""
        End If

        If txtHasta.Text.Trim <> "" Then
            objInformeCampo.FechaFin = txtHasta.Text.Trim
        Else
            objInformeCampo.FechaFin = ""
        End If

        Dim objInformeCampoBC As New InformeCampoBC
        dgInformeCampo.DataSource = objInformeCampoBC.ListarInformeCampo(objInformeCampo)
        dgInformeCampo.DataBind()

    End Sub

    Private Sub dgInformeCampo_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles dgInformeCampo.RowCommand
        Dim intCodigo As Integer = Convert.ToInt32(e.CommandArgument)

        Dim Context As HttpContext
        Context = HttpContext.Current

        Select Case e.CommandName
            Case "Editar"
                Context.Items.Add("codigo", intCodigo)
                Context.Items.Add("tipoEvento", "E")
                Server.Transfer("InformeCampoVerMod.aspx")

            Case "Visualizar"
                Context.Items.Add("codigo", intCodigo)
                Context.Items.Add("tipoEvento", "V")
                Server.Transfer("InformeCampoVerMod.aspx")

        End Select
    End Sub

    Private Sub dgInformeCampo_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles dgInformeCampo.RowDataBound
        Dim imagenVisualizar As ImageButton
        Dim imagenEditar As ImageButton
        Dim estado As String = DataBinder.Eval(e.Row.DataItem, "Estado")

        If e.Row.RowType = DataControlRowType.DataRow Then
            imagenVisualizar = e.Row.FindControl("ImagenenVisualizar")
            imagenEditar = e.Row.FindControl("ImagenEditar")

            If estado = "ENVIADO" Then
                imagenEditar.Visible = False
            ElseIf estado = "GRABADO" Then
                imagenVisualizar.Visible = False
            End If
        End If
    End Sub
End Class